home *** CD-ROM | disk | FTP | other *** search
Wrap
VERSION 5.00 Begin VB.Form frmSplash BackColor = &H00000000& BorderStyle = 1 'Fixed Single Caption = "SPACEINVADERS SERGIO PERCIBALLI 1998" ClientHeight = 6210 ClientLeft = -390 ClientTop = 540 ClientWidth = 10770 ControlBox = 0 'False FillColor = &H00FFFFFF& FillStyle = 0 'Solid ForeColor = &H00FFFFFF& Icon = "frmclcycbitblitSplash.frx":0000 KeyPreview = -1 'True LinkTopic = "Form2" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 414 ScaleMode = 3 'Pixel ScaleWidth = 718 StartUpPosition = 2 'CenterScreen Begin VB.PictureBox PicCurtain2 Appearance = 0 'Flat BackColor = &H0000FF00& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1095 Left = 9600 ScaleHeight = 73 ScaleMode = 3 'Pixel ScaleWidth = 49 TabIndex = 42 Top = 4200 Width = 735 End Begin VB.PictureBox PicCurtain1 Appearance = 0 'Flat BackColor = &H0000FF00& BorderStyle = 0 'None ForeColor = &H80000008& Height = 1095 Left = 8880 ScaleHeight = 73 ScaleMode = 3 'Pixel ScaleWidth = 41 TabIndex = 41 Top = 3960 Width = 615 End Begin VB.Timer tmrCurtain Interval = 10 Left = 120 Top = 4800 End Begin VB.CommandButton CmdQuit Caption = "&Quit" Height = 375 Left = 5520 TabIndex = 19 Top = 4080 Visible = 0 'False Width = 855 End Begin VB.Timer TmrAnimate Enabled = 0 'False Interval = 50 Left = 120 Top = 240 End Begin VB.CommandButton CmdPlay Caption = "Play" Default = -1 'True Height = 375 Left = 4440 TabIndex = 0 Top = 4080 Visible = 0 'False Width = 855 End Begin VB.PictureBox PicCube Appearance = 0 'Flat AutoRedraw = -1 'True BackColor = &H00000000& BorderStyle = 0 'None ForeColor = &H80000005& Height = 1815 Left = 7320 ScaleHeight = 121 ScaleMode = 3 'Pixel ScaleWidth = 129 TabIndex = 70 Top = 3480 Visible = 0 'False Width = 1935 Begin VB.Shape ShpSqrPoint BackColor = &H00FF00FF& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 5 Left = 240 Shape = 3 'Circle Top = 720 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H00FFFFFF& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 6 Left = 600 Shape = 3 'Circle Top = 720 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H00C0C0C0& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 7 Left = 840 Shape = 3 'Circle Top = 720 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H000000FF& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 0 Left = 240 Shape = 3 'Circle Top = 0 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H0000FFFF& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 1 Left = 0 Shape = 3 'Circle Top = 0 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H0000FF00& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 2 Left = 480 Shape = 3 'Circle Top = 0 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H00FFFF00& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 3 Left = 720 Shape = 3 'Circle Top = 0 Visible = 0 'False Width = 60 End Begin VB.Shape ShpSqrPoint BackColor = &H00FF0000& BackStyle = 1 'Opaque BorderColor = &H00FFFFFF& BorderStyle = 0 'Transparent FillColor = &H000000FF& Height = 60 Index = 4 Left = 960 Shape = 3 'Circle Top = 0 Visible = 0 'False Width = 60 End End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 945 Index = 19 Left = 8520 TabIndex = 47 Top = 2580 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 945 Index = 20 Left = 8985 TabIndex = 48 Top = 2565 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "1" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000080& Height = 945 Index = 14 Left = 6240 TabIndex = 37 Top = 2580 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "8" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 945 Index = 17 Left = 7620 TabIndex = 40 Top = 2595 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 945 Index = 16 Left = 7110 TabIndex = 39 Top = 2595 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000080& Height = 945 Index = 15 Left = 6630 TabIndex = 38 Top = 2565 Visible = 0 'False Width = 525 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 1065 Index = 20 Left = 8940 TabIndex = 69 Top = 2520 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "8" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00404040& Height = 1065 Index = 17 Left = 7590 TabIndex = 66 Top = 2535 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00404040& Height = 1065 Index = 16 Left = 7080 TabIndex = 65 Top = 2535 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0C0FF& Height = 1065 Index = 15 Left = 6600 TabIndex = 64 Top = 2520 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "1" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFC0& Height = 1065 Index = 14 Left = 6120 TabIndex = 63 Top = 2520 Visible = 0 'False Width = 600 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "/" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 945 Index = 18 Left = 8085 TabIndex = 46 Top = 2595 Visible = 0 'False Width = 525 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0200FFFF& BackStyle = 0 'Transparent Caption = "Y" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 240 Index = 20 Left = 720 TabIndex = 45 Top = 600 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0200FFFF& BackStyle = 0 'Transparent Caption = "B" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0FFC0& Height = 240 Index = 19 Left = 510 TabIndex = 44 Top = 960 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H00000000& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0080FF80& Height = 225 Index = 18 Left = 435 TabIndex = 43 Top = 1320 Visible = 0 'False Width = 180 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = " BeginProperty Font Name = "Courier New" Size = 48 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 1035 Index = 13 Left = 5520 TabIndex = 36 Top = 2520 Visible = 0 'False Width = 570 End Begin VB.Label Label8 BackStyle = 0 'Transparent Caption = "SPACEINVADERS SERGIO PERCIBALLI 1998" BeginProperty Font Name = "MS Sans Serif" Size = 18 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 495 Left = 1320 TabIndex = 35 Top = 5400 Visible = 0 'False Width = 7935 End Begin VB.Label Label5 BackColor = &H000080FF& Height = 255 Left = 6360 TabIndex = 34 Top = 240 Visible = 0 'False Width = 255 End Begin VB.Label Label4 BackColor = &H00C0FFC0& Height = 495 Left = 6240 TabIndex = 33 Top = 120 Visible = 0 'False Width = 495 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "S" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 945 Index = 12 Left = 8640 TabIndex = 32 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "R" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 945 Index = 11 Left = 8040 TabIndex = 31 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H008080FF& Height = 945 Index = 10 Left = 7440 TabIndex = 30 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "D" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0C0FF& Height = 945 Index = 9 Left = 6840 TabIndex = 29 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "A" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 945 Index = 8 Left = 6240 TabIndex = 28 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "V" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0C0FF& Height = 945 Index = 7 Left = 5640 TabIndex = 27 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "N" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 945 Index = 6 Left = 5040 TabIndex = 26 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "I" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 945 Index = 5 Left = 4440 TabIndex = 25 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 945 Index = 4 Left = 3960 TabIndex = 24 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "C" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000080& Height = 945 Index = 3 Left = 3360 TabIndex = 23 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "A" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000040& Height = 945 Index = 2 Left = 2760 TabIndex = 22 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "P" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000080& Height = 945 Index = 1 Left = 2280 TabIndex = 21 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label LblTitle AutoSize = -1 'True BackStyle = 0 'Transparent Caption = "S" BeginProperty Font Name = "Courier New" Size = 44.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 945 Index = 0 Left = 1695 TabIndex = 20 Top = 120 Visible = 0 'False Width = 525 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0200FF00& BackStyle = 0 'Transparent Caption = "I" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H008080FF& Height = 240 Index = 17 Left = 480 TabIndex = 18 Top = 1680 Visible = 0 'False Width = 60 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0200FFFF& BackStyle = 0 'Transparent Caption = "L" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 240 Index = 16 Left = 360 TabIndex = 17 Top = 2280 Visible = 0 'False Width = 120 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H020080FF& BackStyle = 0 'Transparent Caption = "L" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 240 Index = 15 Left = 570 TabIndex = 16 Top = 2760 Visible = 0 'False Width = 120 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H020000FF& BackStyle = 0 'Transparent Caption = "A" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0FFC0& Height = 240 Index = 14 Left = 1320 TabIndex = 15 Top = 3360 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H028080FF& BackStyle = 0 'Transparent Caption = "B" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 240 Index = 13 Left = 1800 TabIndex = 14 Top = 3720 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0280C0FF& BackStyle = 0 'Transparent Caption = "I" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 240 Index = 12 Left = 2760 TabIndex = 13 Top = 3720 Visible = 0 'False Width = 60 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0280FFFF& BackStyle = 0 'Transparent Caption = "C" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0C0FF& Height = 240 Index = 11 Left = 3270 TabIndex = 12 Top = 3720 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H0280FF80& BackStyle = 0 'Transparent Caption = "R" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H008080FF& Height = 240 Index = 10 Left = 3870 TabIndex = 11 Top = 3600 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02FFFF80& BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 240 Index = 9 Left = 4350 TabIndex = 10 Top = 3120 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02FF8080& BackStyle = 0 'Transparent Caption = "P" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 240 Index = 8 Left = 4560 TabIndex = 9 Top = 2280 Visible = 0 'False Width = 180 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H00000000& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000C0& Height = 225 Index = 7 Left = 4800 TabIndex = 8 Top = 1440 Visible = 0 'False Width = 180 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02FFC0FF& BackStyle = 0 'Transparent Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000080& Height = 240 Index = 6 Left = 4365 TabIndex = 7 Top = 720 Visible = 0 'False Width = 120 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02FFC0C0& BackStyle = 0 'Transparent Caption = "I" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00008000& Height = 240 Index = 5 Left = 3735 TabIndex = 6 Top = 240 Visible = 0 'False Width = 60 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02FFFFC0& BackStyle = 0 'Transparent Caption = "G" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000C000& Height = 240 Index = 4 Left = 3480 TabIndex = 5 Top = 240 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02C0FFC0& BackStyle = 0 'Transparent Caption = "R" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 240 Index = 3 Left = 2370 TabIndex = 4 Top = 120 Visible = 0 'False Width = 150 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02C0E0FF& BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0080FF80& Height = 240 Index = 2 Left = 1665 TabIndex = 3 Top = 120 Visible = 0 'False Width = 180 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H02C0FFFF& BackStyle = 0 'Transparent Caption = "S" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0FFC0& Height = 240 Index = 1 Left = 1320 TabIndex = 2 Top = 240 Visible = 0 'False Width = 180 End Begin VB.Label Label1 Alignment = 2 'Center AutoSize = -1 'True BackColor = &H00000000& BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00C0FFC0& Height = 240 Index = 0 Left = 1005 TabIndex = 1 Top = 360 Visible = 0 'False Width = 210 End Begin VB.Line Line1 BorderColor = &H00008000& Visible = 0 'False X1 = 104 X2 = 264 Y1 = 56 Y2 = 224 End Begin VB.Line Line2 BorderColor = &H00000080& Visible = 0 'False X1 = 72 X2 = 264 Y1 = 224 Y2 = 40 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "S" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FFFF& Height = 1065 Index = 0 Left = 1680 TabIndex = 49 Top = 120 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "S" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000040& Height = 1065 Index = 12 Left = 8625 TabIndex = 61 Top = 165 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "R" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000040& Height = 1065 Index = 11 Left = 7680 TabIndex = 60 Top = 2040 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000040& Height = 1065 Index = 10 Left = 7200 TabIndex = 59 Top = 120 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "D" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FF00& Height = 1065 Index = 9 Left = 6720 TabIndex = 58 Top = 120 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "A" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000040& Height = 1065 Index = 8 Left = 6120 TabIndex = 57 Top = 2040 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "V" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 7 Left = 5640 TabIndex = 56 Top = 600 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "N" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 6 Left = 5040 TabIndex = 55 Top = 120 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "I" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 5 Left = 4440 TabIndex = 54 Top = 2040 Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "E" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 4 Left = 3960 TabIndex = 53 Top = 2040 Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "C" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 3 Left = 3360 TabIndex = 52 Top = 2040 Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "A" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 2 Left = 2760 TabIndex = 51 Top = 2040 Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "P" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 1065 Index = 1 Left = 2280 TabIndex = 50 Top = 2040 Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = " BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000C0C0& Height = 1065 Index = 13 Left = 5520 TabIndex = 62 Top = 2520 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "/" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 1065 Index = 18 Left = 8025 TabIndex = 67 Top = 2565 Visible = 0 'False Width = 600 End Begin VB.Label LblEdge Appearance = 0 'Flat AutoSize = -1 'True BackColor = &H80000005& BackStyle = 0 'Transparent Caption = "9" BeginProperty Font Name = "Courier New" Size = 50.25 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00008080& Height = 1065 Index = 19 Left = 8490 TabIndex = 68 Top = 2535 Visible = 0 'False Width = 600 End Attribute VB_Name = "frmSplash" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False '********************SPACEINVADERS----by Sergio Perciballi*********** ' started Date 14/Nov/1998:version 6 -dec 1998 'Program ---recreation of classic 1979 game;animated splash 'This module====FrmSplash------SplashScreen 'variables need to be declared 'rotating FrmRotate; bitblit--- win32api-copy from form to form 'Version 6 'improved draw speed by grouping labels:new sine wave movement of title 'new square/cube rotating routine 4 Jan 1999 'Win32 API declarations----------------------------------------------- Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long 'getdc--get device context of source and destination Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long Private Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long '---------------------------------------------------------------------- Option Explicit Dim dest(2, 2) 'concatenated matrix holds xyz angles Private Type d3point 'type for newxy x As Double y As Double z As Double End Type Private Type POINTAPI 'type for win32api function polygon etc. x As Long y As Long End Type 'udt used by win32 api Dim sqr(8) As d3point '8 corners of square Dim newxy(8) As d3point 'sqr multiplied by matrix Dim cx, cy, cz As Integer 'centre of screen in 3d Dim side(4) As POINTAPI 'store 4 points of a sqr Dim angle(21) 'angle offsets for rotating letters Dim angl, radiusx, radiusy, index As Integer Dim scrcx, scrcy As Integer Dim strindex, bounceindex, dy, rdx, rdy, dy2 As Integer Dim amounttomove, frm2dc, frmsplashdc As Long Dim doneleft, allshown As Boolean Dim t$, a& Dim getout As Boolean Dim display$ 'name in label that scrolls '--------------------Declarations----------------------------------- 'initialise stuff at startup-------------1st sub to execute 'most controls start not visible Private Sub Form_Load() Dim x, y As Integer Dim rad, stepangle As Long cx = 60: cy = 60: cz = 0 'coordinates for cube in picbox initcube ' subroutine: put co-ordinates in structure 'handles for bitblt function frm2dc = GetDC(FrmRotate.hwnd) 'handle of little form frmsplashdc = GetDC(frmSplash.hwnd) 'devicecontext handle of screen doneleft = False: strindex = 0 display$ = "SPACEINVADERS SERGIO PERCIBALLI 1998" 'string on screen 'setup curtain put them half way from left and right PicCurtain1.Left = 0: PicCurtain1.Top = 0 PicCurtain2.Left = ScaleWidth / 2: PicCurtain2.Top = 0 PicCurtain1.Width = ScaleWidth / 2 PicCurtain2.Width = ScaleWidth / 2 PicCurtain1.Height = ScaleHeight ' curtain height=screen height PicCurtain2.Height = ScaleHeight ' bounceindex = 0: index = 0 allshown = False amounttomove = 150 scrcx = 210: scrcy = 120: dy = 5 radiusx = 50: radiusy = 50 rdx = 1: rdy = 1: dy2 = 4 angl = 0: y = 0: rad = 0 stepangle = 0.0174 'not used: 1 degree=0.0174 radians y = 0 'index for angle offset array For x = 0 To 360 Step 360 / 21 '21 letters and spaces 'setup angle offsets rad = (x * 3.14) / 180 'convert degree to radians angle(y) = rad 'store in array y = y + 1 'move through array Next End Sub 'formload 'second sub to execute Private Sub tmrCurtain_Timer() If PicCurtain1.Width > 10 + 5 Then 'turn off :adjust width:then on 'faster smoother if invisible PicCurtain1.Visible = False: PicCurtain2.Visible = False PicCurtain1.Width = PicCurtain1.Width - 5 PicCurtain2.Width = PicCurtain2.Width - 5 PicCurtain2.Left = PicCurtain2.Left + 5 PicCurtain1.Visible = True: PicCurtain2.Visible = True Else PicCurtain1.Left = -50 PicCurtain2.Left = ScaleWidth + 50 PicCurtain1.Visible = False PicCurtain2.Visible = False 'main spaceinvaders show TmrAnimate.Enabled = True 'animated 'turn me off tmrCurtain.Enabled = False End If 'copy from form1 to rotating FrmRotate--win32api a& = BitBlt(frm2dc, 0&, 0&, 600&, 328&, frmsplashdc, 0&, 0&, vbSrcCopy) End Sub 'TmrCurtain '3rd sub------------------------- Private Sub TmrAnimate_Timer() 'main routine to show name in circ and bouncing 'spaceinvaders Static counter Dim rad2, temp1, temp2, temp3 Dim x As Long 'optimize Dim lblshadowoffsetx, lblshadowoffsety Dim frm2x, frm2y Static degree1, degree2, degree3 'used for angle rotation of cube 'rotate text name by sergio perciballi DoEvents 'to get keypress events If allshown = True Then '? made all labels visible 'hide all labels lines shapes . square first For index = 0 To Controls.Count - 1 '0 based collection If (TypeOf Controls(index) Is Label) Or (TypeOf Controls(index) Is Line) _ Or (TypeOf Controls(index) Is Shape) Or (TypeOf Controls(index) Is PictureBox) Then Controls(index).Visible = False End If Next index ' invisible all other cntrols except timers Call addside(0, 1, 2, 3, "e") 'erase sides of cube Call addside(4, 5, 6, 7, "e") 'different points xyz Call addside(0, 1, 5, 4, "e") Call addside(1, 2, 6, 5, "e") Call addside(2, 3, 7, 6, "e") Call addside(3, 0, 4, 7, "e") 'erase 'angles of cube degree1 = degree1 + 1: If degree1 > 360 Then degree1 = 0 degree2 = degree2 + 2: If degree2 > 360 Then degree2 = 0 degree3 = degree3 + 3: If degree3 > 360 Then degree3 = 0 'angl=degree 0..360 angl = angl + 2 If angl >= 360 Then angl = 0 rad2 = angl * 3.14 / 180 'convert degrees to radians for cos sin ' If radiusx > 140 Then rdx = -1 If radiusy > 140 Then rdy = -1.7 If radiusx < 20 Then rdx = 1 If radiusy < 20 Then rdy = 0.7 radiusx = radiusx + rdx: radiusy = radiusy + rdy 'rotatecolors on circle squares/spaceinvaders logo temp1 = Label1(0).ForeColor 'setup temps temp2 = LblTitle(0).ForeColor temp3 = LblEdge(0).ForeColor For x = 1 To 21 Label1(x - 1).Left = radiusx * Cos(angle(x - 1) + rad2) - (50 * Sin(angle(x - 1) + rad2)) + 150 Label1(x - 1).Top = radiusy * Sin(angle(x - 1) + rad2) + (50 * Cos(angle(x - 1) + rad2)) + 164 Label1(x - 1).Font.Size = 6 + ((Label1(x - 1).Top * 6) / 100) 'shift down each color If x < 21 Then Label1(x - 1).ForeColor = Label1(x).ForeColor LblTitle(x - 1).ForeColor = LblTitle(x).ForeColor LblEdge(x - 1).ForeColor = LblEdge(x).ForeColor End If Next Label1(20).ForeColor = temp1 LblTitle(20).ForeColor = temp2 LblEdge(20).ForeColor = temp3 'up date lines in circle of letters Line1.X1 = Label1(0).Left Line1.Y1 = Label1(0).Top Line1.x2 = Label1(10).Left Line1.Y2 = Label1(10).Top Line2.X1 = Label1(5).Left Line2.Y1 = Label1(5).Top Line2.x2 = Label1(15).Left Line2.Y2 = Label1(15).Top 'square tumble routine 'concatenated(multiplied row by column) matrix is made '-concatenated also means added, as in strings s$-&-b$ Call MatrixRotate(degree1, degree2, degree3) Call ApplyMatToPoint("b", sqr(0)) 'points are multiplied by matrix 'move floating form in circle coords in twips frm2x = 3000 * Cos(rad2) - 100 * Sin(rad2) + 4000 frm2y = 2000 * Sin(rad2) + 100 * Cos(rad2) + 3100 FrmRotate.Move frm2x, frm2y 'optimize by using move 'call bounce/namedisplay subroutines bounce NameDisplay 'show all labels---------------- Call addside(0, 1, 2, 3, "d") 'draw sides of cube Call addside(4, 5, 6, 7, "d") 'different points xyz Call addside(0, 1, 5, 4, "d") ' a plane of cube Call addside(1, 2, 6, 5, "d") Call addside(2, 3, 7, 6, "d") Call addside(3, 0, 4, 7, "d") For x = 0 To 7 ' points of square 'place dots at corners of square ShpSqrPoint(x).Left = newxy(x).x - (ShpSqrPoint(x).Width / 2) ShpSqrPoint(x).Top = newxy(x).y - (ShpSqrPoint(x).Height / 2) Next ' make labels shapes lines visible For index = 0 To Controls.Count - 1 '0 based collection If (TypeOf Controls(index) Is Label) Or (TypeOf Controls(index) Is Line) _ Or (TypeOf Controls(index) Is Shape) Or (TypeOf Controls(index) Is PictureBox) Then Controls(index).Visible = True End If Next index 'copy from form1 to rotating FrmRotate--win32api Else 'avoid timer controls If (TypeOf Controls(index) Is Label) Or (TypeOf Controls(index) Is CommandButton) _ Or (TypeOf Controls(index) Is Shape) _ Then frmSplash.Controls(index).Visible = True End If index = index + 1 If index = Controls.Count Then index = 0: allshown = True CmdPlay.SetFocus FrmRotate.Left = 7000: FrmRotate.Top = 3500 'twips 1400 in inch FrmRotate.Show 'Tmranimate.Interval = 1500 End If End If 'allshown a& = BitBlt(frm2dc, 0&, 0&, 600&, 328&, frmsplashdc, 0&, 0&, vbSrcCopy) End Sub 'TmrAnimate Private Sub CmdPlay_Click() '-----------click play button and go to game screen-------- Dim a As Long 'return val TmrAnimate.Enabled = False a = ReleaseDC(FrmRotate.hwnd, frm2dc) 'clean up resources a = ReleaseDC(frmSplash.hwnd, frmsplashdc) Unload FrmRotate 'unload first Unload Me Set FrmRotate = Nothing 'clean up resources:memory etc Set frmSplash = Nothing 'having no timer in animation routine causes bug 'frmsplash -bug :frmsplash.hide: removed:-a reference to 'frmsplash caused frmsplash to reapear:uncomment next line to see 'frmSplash.Hide 'go to game FrmGameScreen.Show FrmGameScreen.SetFocus End Sub 'cmdPlay-click Private Sub CmdQuit_Click() 'exit program on quit button Unload FrmRotate Unload frmSplash Set FrmRotate = Nothing 'clean up resources:memory etc Set frmSplash = Nothing End 'total stop of program End Sub 'cmd2click '1.1 called by formload Private Sub initcube() 'load array sqr with 3d coordinates Dim sidewidth 'length of cube side-easier to change if here 'structure of square :-8 corners ,24 points(x,y,z) -8*3 sidewidth = 30 'width of square side sqr(0).x = -sidewidth: sqr(0).y = -sidewidth: sqr(0).z = -sidewidth sqr(1).x = sidewidth: sqr(1).y = -sidewidth: sqr(1).z = -sidewidth sqr(2).x = sidewidth: sqr(2).y = sidewidth: sqr(2).z = -sidewidth sqr(3).x = -sidewidth: sqr(3).y = sidewidth: sqr(3).z = -sidewidth sqr(4).x = -sidewidth: sqr(4).y = -sidewidth: sqr(4).z = sidewidth sqr(5).x = sidewidth: sqr(5).y = -sidewidth: sqr(5).z = sidewidth sqr(6).x = sidewidth: sqr(6).y = sidewidth: sqr(6).z = sidewidth sqr(7).x = -sidewidth: sqr(7).y = sidewidth: sqr(7).z = sidewidth End Sub 'initicube Private Sub ApplyMatToPoint(ByVal rot As String, oldx As d3point) '************************************************************* ' part of these subs -addside(),applymattopoint(),matrixrotate()initicube() 'adapted from pascal(c++ would be worse) program by 'dan osier,steve grobman,steve batson in book -teach youself delphi 'in 14 days-difficult to understand matrix concatenation '************************************************************* Dim x, d As Integer 'd= distance of eye from object 'calculate new point from dest() matrix 'sqr().x.y.z = original co-ordinates of square in sqr() 'note: this cube is projected by parallel -no perspective-- yet! 'cx,cy add offsets to move image from 0,0 d = 150 'distance off eye For x = 0 To 7 newxy(x).x = (sqr(x).x * dest(0, 0)) + (sqr(x).y * dest(0, 1)) + (sqr(x).z * dest(0, 2)) newxy(x).y = (sqr(x).x * dest(1, 0)) + (sqr(x).y * dest(1, 1)) + (sqr(x).z * dest(1, 2)) newxy(x).z = (sqr(x).x * dest(2, 0)) + (sqr(x).y * dest(2, 1)) + (sqr(x).z * dest(2, 2)) + cz '----------------------formula for perspective projection -x*1/(z/d)+1) z= d=distance of eye from object '----------------------formula From 'teach yourself computer Graphics by John Lansdown newxy(x).x = newxy(x).x * 1 / ((newxy(x).z / d) + 1) + cx 'cx,cy= offsets for screen newxy(x).y = newxy(x).y * 1 / ((newxy(x).z / d) + 1) + cy newxy(x).z = newxy(x).z * 1 / ((newxy(x).z / d) + 1) + cz Next x End Sub 'applymattopoint Private Sub addside(ByVal a, b, c, d As Integer, d1$) Dim success As Long 'to show faces see if sum of z of side less than -50 side(0).x = newxy(a).x 'put points into an array so we side(0).y = newxy(a).y ' can draw cube side side(1).x = newxy(b).x 'newxy is linear 0..7, side() is varied side(1).y = newxy(b).y side(2).x = newxy(c).x side(2).y = newxy(c).y side(3).x = newxy(d).x side(3).y = newxy(d).y ' you understand this ?!! ' formula for hidden face removal -15 is half sqr cube width(30) 'add all the z coordinates to find the normal"line perpendicular to plane of side" ' -50 is a guess for clipping with eye at 150; I haven't found out the formula yet! If newxy(a).z + newxy(b).z + newxy(c).z + newxy(d).z < -50 Then 'smoother with picturebox control -PicCube- Select Case d1$ Case "d" ' draw cube to screen 'BackColor = &HFFFFFF PicCube.ForeColor = &HFFFFFF 'white of lines 'success = Polyline(frmSplash.hdc, side(0), 4) 'move pixel start to first point in side PicCube.CurrentX = newxy(a).x: PicCube.CurrentY = newxy(a).y PicCube.Line -(newxy(b).x, newxy(b).y) 'connect points of side PicCube.Line -(newxy(c).x, newxy(c).y) PicCube.Line -(newxy(d).x, newxy(d).y) PicCube.Line -(newxy(a).x, newxy(a).y) 'back to start Case "e" 'success = Polyline(frmSplash.hdc, side(0), 4) PicCube.ForeColor = &H0& 'black PicCube.CurrentX = newxy(a).x: PicCube.CurrentY = newxy(a).y PicCube.Line -(newxy(b).x, newxy(b).y) PicCube.Line -(newxy(c).x, newxy(c).y) PicCube.Line -(newxy(d).x, newxy(d).y) PicCube.Line -(newxy(a).x, newxy(a).y) 'back to start End Select End If ' test of visibility -25 End Sub 'addside Private Sub MatrixRotate(ByVal degree, degree2, degree3) 'adapted from learn delphi in 14 days book Dim sinX, cosX, sinY, cosY, sinZ, cosZ, rad Dim rad1, rad2, rad3 rad1 = (degree / 180) * 3.14 'degree to radians rad2 = (degree2 / 180) * 3.14 rad3 = (degree3 / 180) * 3.14 '3 axis of rotation in radians sinX = Sin(rad3): cosX = Cos(rad3) sinY = Sin(rad2): cosY = Cos(rad2) sinZ = Sin(rad1): cosZ = Cos(rad1) 'matrix pre-multiplied by z y x rotation matrices ' actually multiplied z by y then that(z*y) by x (not= (x*y)*z) dest(0, 0) = cosZ * cosY dest(0, 1) = cosZ * -sinY * -sinX + sinZ * cosX dest(0, 2) = cosZ * -sinY * cosX + sinZ * sinX dest(1, 0) = -sinZ * cosY dest(1, 1) = -sinZ * -sinY * -sinX + cosZ * cosX dest(1, 2) = -sinZ * -sinY * cosX + cosZ * sinX dest(2, 0) = sinY dest(2, 1) = cosY * -sinX dest(2, 2) = cosY * cosX End Sub 'matrixrotate Private Sub bounce() Dim rad2 Dim indexbounce As Long If amounttomove > 0 Then 'stops bouunce after awhile rad2 = angl / 3.14 For indexbounce = 0 To 12 '13 letters in 'y movement of spaceinvaders labels: radius 10 LblTitle(indexbounce).Top = 10 * Sin(rad2 + indexbounce) - 10 * Cos(rad2 + indexbounce) + 100 LblEdge(indexbounce).Left = LblTitle(indexbounce).Left - ((LblEdge(indexbounce).Width - LblTitle(indexbounce).Width) / 2) LblEdge(indexbounce).Top = LblTitle(indexbounce).Top - ((LblEdge(indexbounce).Height - LblTitle(indexbounce).Height) / 2) Next bounceindex = bounceindex + 5 If bounceindex >= amounttomove Then bounceindex = 0 If dy = 5 Then 'take away a percentage amounttomove = (amounttomove * 40) / 100 End If If dy = 5 Then dy = -5 Else dy = 5 End If End If End If 'move bounce labels ; and orange green Label4.Top = (Label4.Top + dy2) Label4.Width = 33 + ((Label4.Top * 10) / 100) If Label4.Top >= 200 Then dy2 = -4 If Label4.Top <= 0 Then dy2 = 4 Label5.Top = Label4.Top + 5 Label5.Width = Label4.Width - 12 End Sub 'Bounce Private Sub NameDisplay() 'display string left to right, right to left If doneleft = False Then strindex = strindex + 1 'move chunk length of strindex into caption Label8.Caption = Left$(display$, strindex) frmSplash.Caption = Left$(display$, strindex) FrmRotate.Caption = Left$(display$, strindex) If strindex >= Len(display$) Then doneleft = True Label8.Alignment = 1 End If End If If doneleft = True Then strindex = strindex - 1 Label8.Caption = Right(display$, strindex) If strindex = 0 Then doneleft = False Label8.Alignment = 0 End If End If End Sub 'NameDisplay